/*
 * poligono.h
 *
 *  Created on: 17/02/2013
 *      Author: alex
 */

#ifndef POLIGONO_H_
#define POLIGONO_H_

#include "RayTracer.h"

// Lista de Puntos de un Poligono
typedef struct nodo_vertice
{
        long double x, y, z, u, v;
        struct nodo_vertice *siguiente;
} vertice_t;

// Datos especificos de un poligono
typedef struct {
        long double NPuntos, A, B, C, D;
        long double U[3], V[3], w, h;
        long double N[3];
        struct nodo_vertice *Vertices;
        struct nodo_vertice Esquina;
} poligono_t;

long double IntPoligono(long double Xe, long double Ye, long double Ze,
						long double Xd, long double Yd, long double Zd,
						long double A, long double B, long double C, long double D, struct nodo_vertice *Vertices,
						objeto_t *objeto);

long double* NormalPoligono(long double N[3]);

#endif /* POLIGONO_H_ */
